package com.yuanfeng.business.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;

/**
 * 店铺表(ShopBase)
 *
 * @since 2023-05-10 14:32:42
 */
@TableName("shop_base")
@Data
public class ShopBaseEntity implements Serializable {

    /**
     * 店铺id
     */
    @TableId(type = IdType.AUTO)
    private Integer shopId;
    /**
     * 用户id
     */
    private String userId;

    private String userName;
    /**
     * 店铺名称
     */
    private String shopName;
    /**
     * 店铺等级
     */
    private Integer shopGradeId;
    /**
     * 店铺绑定分类，如果是自营店铺就为0.
     */
    private Integer shopClassId;
    /**
     * 绑定所有经营类目
     */
    private Boolean shopAllClass;

    /**
     * 是否自营
     */
    private Object shopSelfSupport;
    /**
     * 0:个人入驻 1:企业入驻 2:门店厂商 3:供应商  4  品牌店铺
     */
    private Integer shopBusiness;
    /**
     * 开店时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date shopCreateTime;
    /**
     * 有效期截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date shopEndTime;
    /**
     * 结算周期-天为单位-如果您想设置结算周期为一个月，则可以输入30
     */
    private Integer shopSettlementCycle;
    /**
     * 店铺上次结算时间，若是新开店铺没有结算单，则是开店日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date shopSettlementLastTime;
    /**
     * 积分
     */
    private Integer shopPoints;
    /**
     * 店铺logo
     */
    private String shopLogo;
    /**
     * 店铺banner
     */
    private String shopBanner;
    /**
     * 店铺状态-3：开店成功 2:待审核付款 1:待审核资料  0:关闭
     */
    private Integer shopStatus;
    /**
     * 关闭原因
     */
    private String shopCloseReason;
    /**
     * 店铺粉丝数
     */
    private Integer shopCollect;
    /**
     * 工作时间
     */
    private String shopWorkingtime;

    /**
     * 轮播图
     */
    private String shopSlide;

    /**
     * 轮播图对应地址
     */
    private String shopSlideurl;
    /**
     * 二级域名
     */
    private String shopDomain;
    /**
     * 详细地址
     */
    private String shopAddress;
    /**
     * qq
     */
    private String shopQq;
    /**
     * 旺旺
     */
    private String shopWw;
    /**
     * 卖家电话
     */
    private String shopTel;
    /**
     * 免运费额度
     */
    private BigInteger shopFreeShipping;
    /**
     * 0:未付款，1已付款
     */
    private Boolean shopPayment;

    /**
     * 加入时间
     */
    private Integer joininYear;
    /**
     * 是否开启装修(0:否，1：是)
     */
    private Boolean isRenovation;

    /**
     * 是否仅显示装修(1：是，0：否）
     */
    private Boolean isOnlyRenovation;

    /**
     * 是否左侧显示
     */
    private Boolean isIndexLeft;

    /**
     * 打印订单页面下方说明
     */
    private String shopPrintDesc;
    /**
     * 店铺印章-将出现在打印订单的右下角位置
     */
    private String shopStamp;
    /**
     * 上级店铺id-创建店铺决定，所属分销商-不可更改！ 佣金公平性考虑
     */
    private Integer shopParentId;
    /**
     * 店铺类型: 1-卖家店铺; 2:供应商店铺 3 品牌店铺
     */
    private Integer shopType;
    /**
     * 所在地，使用最后一级分类
     */
    private Integer districtId;
    /**
     * 审核信息备注
     */
    private String shopVerifyReason;
    /**
     * 店铺售后服务
     */
    private String shopCommonService;

    /**
     * 店铺推广佣金比例
     */
    private BigDecimal shopRecCommissionRate;

    /**
     * 店铺默认排序
     */
    private Integer shopDisplayOrder;
    /**
     * 店铺介绍
     */
    private String shopDetail;
    /**
     * 店铺图片(wap中的店铺首页banner)
     */
    private String shopImage;
    /**
     * wap 店铺 logo
     */
    private String wapShopLogo;

    /**
     * 佣金比例
     */
    private BigDecimal shopCommissionRate;

    /**
     * 合作协议
     */
    private String shopCooperativeAgreements;
    /**
     * 是否开具增值税发票 1是，0否
     */
    private Integer shopInvoices;
    /**
     * 是否需要开票 0 不需要 1待审核 2审核通过 3审核失败
     */
    private Boolean shopIssueInvoice;

    /**
     * 公司基本信息审核  1待审核 2审核通过 3审核失败
     */
    private Boolean shopIssueUserinfo;

    /**
     * 银行税务信息审核  1待审核 2审核通过 3审核失败
     */
    private Boolean shopIssueBanktax;

    /**
     * 税务信息审核  1待审核 2审核通过 3审核失败
     */
    private Boolean shopIssueBusiness;

    /**
     * 付款信息审核1待审核 2审核通过 3审核失败
     */
    private Boolean paymentVerifyStatus;

    /**
     * 审核付款信息
     */
    private String paymentVerifyReason;
    /**
     * 店铺描述信息
     */
    private String shopDesc;
    /**
     * 1 渠道店铺 0正常店铺 2暂停使用的渠道店铺
     */
    private Integer shopOrigin;
    /**
     * 移动端店铺轮播
     */
    private String mobileShopSlide;
    /**
     * 移动端轮播跳转地址
     */
    private String mobileShopSlideurl;
    /**
     * 审核操作人
     */
    private String shopOperator;
    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date shopOperatorTime;
    /**
     * 聚宝等级:1银牌2金牌3vip4钻石
     */
    private Integer treasureGradeId;
    /**
     * 聚宝付款信息1:尚未缴纳2:已缴纳3审核中4审核失败
     */
    private Integer treasureStatus;
    /**
     * 聚宝付款金额
     */
    private BigDecimal treasurePayment;

    /**
     * 聚宝商家缴纳备注信息
     */
    private String treasurePaymentRemark;
    /**
     * 平台审核原因
     */
    private String treasurePaymentReason;
    /**
     * 店铺审核通过时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date treasureJoinDate;
    /**
     * 付款凭证
     */
    private String treasureJoinVoucher;
    /**
     * 推荐人
     */
    private String recommenderName;
    /**
     * 店铺修改审核1-正常，2-审核中,3-审核失败
     */
    private Integer shopNameVerify;
    /**
     * 新更改的店铺名
     */
    private String newShopName;
    /**
     * 入驻类型修改审核1-正常，2-审核中,3-审核失败
     */
    private Integer shopBusinessVerify;
    /**
     * 入驻类型审核备注
     */
    private String shopBusinessRemark;
    /**
     * 店铺名审核备注
     */
    private String shopNameRemark;
    /**
     * 入驻类型是否修改1-是
     */
    private Integer shopBusinessIsModify;
    /**
     * 罚款次数
     */
    private Integer fineNum;
    /**
     * 店铺资质审核状态 1通过，0未通过，10审核中
     */
    private Integer shopVerifyStatus;
    /**
     * 店铺资质审核备注
     */
    private String shopVerifyRemark;
    /**
     * 创建者
     */
    private String createUser;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 修改人
     */
    private String updateUser;
    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
     * 是否删除0:否;1:是
     */
    private Integer isDelete;
    /**
     * 版本号
     */
    private Integer sysVersion;
    /**
     * 时间戳
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date ts;
    /**
     * 发票功能开关状态:0-关闭;1-开启
     */
    private Integer invoiceSwitchStatus;
    /**
     * 发票开关审核状态:0-待审核；1-通过；2-不通过；3-未申请
     */
    private Integer invoiceAuditStatus;
    /**
     * 商家申请理由
     */
    private String invoiceSwitchReason;
    /**
     * 申请记录创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date invoiceSwitchCreateTime;
    /**
     * 申请记录更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date invoiceSwitchUpdateTime;
    /**
     * 平台审核备注
     */
    private String platformComment;

    /**
     * 质保金余额
     */
    private BigDecimal retentionMoneyBalance;
    /**
     * 质保金可提现
     */
    private BigDecimal retentionMoneyWithdrawal;
    /**
     * 质保金待补缴
     */
    private BigDecimal retentionMoneyPayment;
    /**
     * 质保金基础额度
     */
    private BigDecimal retentionMoneyLimit;
    /**
     * 质保金状态 0 无需缴纳 1 已缴纳 2 请及时补充 3 即将限权 4 已限权
     */
    private Integer retentionStatus;
    /**
     * 质保金累计赔付金额
     */
    private BigDecimal accumulatedCompensation;
    /**
     * 待补缴时间(质保金状态变为2的时间)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date paymentTime;
    /**
     * 质保金说明
     */
    @TableField(exist = false)
    private String retentionIllustrate;

    /**
     * 提现账户
     */
    @TableField(exist = false)
    private String userMobile;

    /**
     * 账户余额
     */
    @TableField(exist = false)
    private String accountBalance;

    /**
     * 本月罚款金额
     */
    @TableField(exist = false)
    private BigDecimal monthFine;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}

